#ifndef __ENGINE_H__
#define __ENGINE_H__
//System includes
#include <Windows.h>

//User includes
#include "Defines.h"

namespace pg2
{	
	class DirectInput;
}
namespace MegaEngine
{
	//Forward declarations
	class Window;
	class Renderer;
	class Game;
	class Camera;

	class ENGINE_API Engine
	{
	public:
		Engine(Game* game, HINSTANCE hInstance, unsigned int width = 640, unsigned int height = 480);
		~Engine();
		bool Init();
		bool End();
		bool Loop();
		Renderer* GetRenderer();
		Camera* GetMainCamera();
		pg2::DirectInput* GetInput();
	private:

		pg2::DirectInput* input;
		Window* window;
		Renderer * renderer;
		Game * game;
		Camera * mainCamera;
	};
}

#endif //__ENGINE_H__